package com.jrx.anytxn.param.mapper.ext;

import com.jrx.anytxn.common.annotation.ParamTuningAnnotation;
import com.jrx.anytxn.param.entity.PrSmsTemplateTable;
import com.jrx.anytxn.param.mapper.base.PrSmsTemplateTableMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 短信模板查询接口扩展
 *
 * @author lbz
 * @date 2019/12/6
 */
@Service
public interface ExtPrSmsTemplateTableMapper extends PrSmsTemplateTableMapper {

    /**
     * 根据租户ID和模板ID查询信息
     *
     * @param tenantId  租户ID
     * @param templateId 短信模板id
     * @return PrSmsTemplateTable
     * @author lbz
     * date: 2019/12/6
     */
     PrSmsTemplateTable selectByTenantIdAndTemplateId(@Param("tenantId") String tenantId, @Param("templateId") String templateId);

     /**
     * 根据字段查询
     *
     * @param templateId,organizationId,tenantId,validStatus
     * @return PrSmsTemplateTable
     */
     PrSmsTemplateTable selectByTemplateIdAndOrgIdAndTenantIdAndValidStatus(@Param("templateId") String templateId, @Param("organizationId") String organizationId, @Param("tenantId") String tenantId,@Param("validStatus") String validStatus);

     /**
      * 根据租户ID查询模板信息
      *
      * @param tenantId 租户ID
      * @return List<PrSmsTemplateTable>
      * @author lbz
      * date: 2019/12/6
     */
     List<PrSmsTemplateTable> selectByTenantId(@Param("tenantId") String tenantId);

     /**
      * 根据条件查询模板信息
      *
      * @param prSmsTemplateTable 查询条件req
      * @return List<PrSmsTemplateTable>
      * @author lbz
      * date: 2019/12/6
      */
     List<PrSmsTemplateTable> selectByCondition(PrSmsTemplateTable prSmsTemplateTable);

     /**
      * 更新模板信息
      * @param prSmsTemplateTable 模板参数信息
      * @return int
      * @author lbz
      * date: 2019/12/6
      */
     @ParamTuningAnnotation
     int updateByTenantIdAndTemplateId(PrSmsTemplateTable prSmsTemplateTable);

     /**
      * 删除信息
      *
      * @param tenantId 租户ID
      * @param templateId   模板编号
      * @return int
      * @author lbz
      * date: 2019/12/6
      */
     @ParamTuningAnnotation
     int deleteByTenantIdAndTemplateId(@Param("tenantId") String tenantId, @Param("templateId") String templateId);

     /**
      * 根据租户ID查询模板信息
      *
      * @param tenantId 租户ID
      * @return List<PrSmsTemplateTable>
      * @author lbz
      * date: 2019/12/6
      */
     List<PrSmsTemplateTable> selectByOrgIdAndTenId(@Param("orgId") String orgId,@Param("tenantId") String tenantId);
}
